const WLogs = require ('@/lib/aliyun/logs')

class Server {

  constructor() {

  }


  /**
   * 前端流程日志
   * @param ctx 环境上下文
   */
  static webProcessAdd(ctx) {
    return WLogs.addLogs ('ybweb', 'process', ctx.vals)
  }

  /**
   * 前端ajax日志
   * @param ctx 环境上下文
   */
  static webAjaxAdd(ctx) {
    return WLogs.addLogs ('ybweb', 'ajax', ctx.vals)
  }

  /**
   * 提交错误日志
   * @param ctx 环境上下文
   */
  static webErrorAdd(ctx) {
    return WLogs.addLogs ('ybweb', 'error', ctx.vals)
  }

  static webLogServe(ctx, project, store) {
    const startTime = new Date(ctx.vals.startTime)
    const endTime = new Date(ctx.vals.endTime)
    return WLogs.getLogs(project, store, startTime, endTime, {
      offset: ctx.vals.offset,
      query: ctx.vals.conditions,
      reverse: ctx.vals.reverse,
      topic: ctx.vals.topic
    })
  }

  /**
   * 前端流程日志
   * @param ctx 环境上下文
   */
  static webProcessList (ctx) {
    return this.webLogServe(ctx, 'ybweb', 'process')
  }

  /**
   * 前端ajax日志
   * @param ctx 环境上下文
   */
  static webAjaxList (ctx) {
    return this.webLogServe(ctx, 'ybweb', 'ajax')
  }

  /**
   * 前端error日志
   * @param ctx 环境上下文
   */
  static webErrorList (ctx) {
    return this.webLogServe(ctx, 'ybweb', 'error')
  }

  /**
   * 后端流程日志
   * @param ctx 环境上下文
   */
  static serverProcessList (ctx) {
    return this.webLogServe(ctx, 'ybserver', 'process')
  }

  /**
   *后端error日志
   * @param ctx 环境上下文
   */
  static serverErrorList (ctx) {
    return this.webLogServe(ctx, 'ybserver', 'error')
  }
}

module.exports = Server
